ADSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
ADSER page# 0002 next prev
13: BEGIN ADSER ↔ SUBTTL ADSER A/D SERVICE ROUTINE - J. SAUTER, STANFORD, 25-FEB-68
14:
15:
16: DEFINE CAT!(A,B),<A!B>
17: ADCHL←CAT(CH,\ADCHN)
18:
19: JRST ADSET
20: JRST HUNG
21: ↑ADDSP: POPJ P,
22: POPJ P,
23: JSP DAT,UERROR
24: JSP DAT,UERROR
25: JRST CPOPJ1
26: JRST CPOPJ1
27: JRST ADOUT
28: JRST ADIN
29: POPJ P,
30: POPJ P,
31: POPJ P,
32: JRST CPOPJ1
33: POPJ P,
34: POPJ P,
35: POPJ P,
36:
ADSER page# 0003 next prev
38:
39: ADSET: MOVEI TAC,40+<ADCHN*2>
40: SKIPN TAC1,P2NUM
41: MOVE TAC1,P1NUM
42: TLNE TAC1,MAOFF
43: ADDI TAC,100
44: MOVEM TAC,ADBLK
45: MOVE TAC1,[JSR CAT(CH,\ADCHN)]
46: SKIPE P2NUM
47: MOVE TAC1,[JSR CAT(P2CH,\ADCHN)]
48: MOVEM TAC1,1(TAC)
49: MOVEM TAC1,ADJSR
50: ADDI TAC,1
51: MOVEM TAC,ADJSRL
52: SETZM ADBKO
53: SETZM ADADV
54: POPJ P,
ADSER page# 0004 next prev
56:
57: ADIN: TLZA IOS,IO
58: ADOUT: TLOA IOS,IO
59: SKIPA TAC,[BLKI DCB,ADBKO]
60: MOVE TAC,[BLKO DCB,ADBKO]
61: MOVEM TAC,@ADBLK
62: HRRZ TAC,UUO
63: CAMLE TAC,USRREL
64: JRST ADRERR
65: HRRZ TAC,@UUO
66: HLRO DAT,@UUO
67: SUB TAC,DAT
68: CAMLE TAC,USRREL
69: JRST ADRERR
70: MOVE TAC,@UUO
71: ADDI TAC,(PROG)
72: MOVEM TAC,ADBKX
73: MOVEI TAC,@UUO
74: MOVE TAC1,1(TAC)
75: ANDCMI TAC1,7
76: IORI TAC1,ADCHN
77: HRRZM TAC1,ADLOC3
78: HRRZ TAC1,2(TAC)
79: HRRZM TAC1,ADLOC4
80: MOVEI TAC1,3(TAC)
81: HRRZM TAC1,ADLOC1
82: MOVEI TAC1,4(TAC)
83: HRRZM TAC1,ADLOC2
84: PUSHJ P,SETACT
85: AD2: MOVEI DDB,ADDDB
86: MOVE IOS,DEVIOS(DDB)
87: LDB TAC,PIOMOD
88:
89:
90: TRNE IOS,100
91: JRST FOO
92: CAIN TAC,D
93: SKIPA TAC,[CLOC3,,1]
94: WT: MOVE TAC,[CLOC2,,3]
95: CONO PI,PIOFF
96: IDPB TAC,CLOCK
97: CONO PI,PION
98: POPJ P,
99:
100: FOO:
101: MOVE TAC,[JSR AD2INT]
102: MOVEM TAC,@ADJSRL
103: HRRZM TAC,ADADV
104: SKIPL ADBKO
105: JRST CLOC3
106: MOVE TAC,ADBKX
107: MOVEM TAC,ADADV
108: POPJ P,
ADSER page# 0005 next prev
110:
111: CLOC2: CONSO TV,1B28
112: JRST WT
113: CLOC3: SETZM ADERR
114: MOVE TAC,ADBKX
115: MOVEM TAC,ADBKO
116: SETOM ADACT
117: SKIPE P2NUM
118: POPJ P,
119: ↑ADP2: MOVE TAC,ADACT
120: JUMPE TAC,CPOPJ
121: SKIPE ADERR
122: JRST AD6
123: SETZM ADACT
124: CONO AD,4000
125: MOVEI TAC,20
126: SOJG TAC,.
127: CONO ADC,0
128: CONO DAC,0
129: MOVSI TAC,(<JRST>)
130: HLLM TAC,ADJMP
131: CONO DCB,@ADLOC3
132: CONO AD,@ADLOC4
133: CONO PI,ADON
134: POPJ P,
135:
136:
137: AD6: CONO DCB,200000
138: CONO AD,4000
139: CONO PI,ADOFF
140: MOVSI TAC,(<JFCL>)
141: HLLM TAC,ADJMP
142: MOVE TAC,ADJSR
143: MOVEM TAC,@ADJSRL
144: SETZM ADBKO
145: POPJ P,
ADSER page# 0006 next prev
147: HUNG: SETOM ADERR
148: SETOM ADACT
149: SETZM ADBKO
150: JRST AD5
151:
152: ↑ADINT:
153: JSR @ADSAV
154: CONI DCB,@ADLOC1
155: CONI AD,@ADLOC2
156: PUSHJ P,AD6
157: HRRZM P,ADADV
158: SKIPE P2NUM
159: POPJ P,
160:
161:
162:
163: ↑ADP1: SETZM ADADV
164: SKIPE ADERR
165: POPJ P,
166: AD5: MOVEI DDB,ADDDB
167: MOVE IOS,DEVIOS(DDB)
168: TLZE IOS,IOW
169: PUSHJ P,STTIOD
170: SKIPL ADBKO
171: TRZ IOS,IOACT
172: MOVEM IOS,DEVIOS(DEVDAT)
173: POPJ P,
174:
175: BEND ADSER
EOF: ADSER end-of-file. cnt=5